qx.Class.define("qx.ui.form.ow.Firetab",
{
	extend : qx.ui.core.Widget,
	construct : function (width, height)
	{
		this.base(arguments);

		width ? this.setWidth(width) : this.setWidth(800);
		height ? this.setHeight(height-91) : this.setHeight(600);		

		this._setLayout(new qx.ui.layout.VBox(5));

		this._menu = new qx.ui.toolbar.ToolBar;
		
		this._cuerpo = new qx.ui.tabview.TabView();

		this._forms = [];
		
		this._add(this._menu);
		this._add(this._cuerpo, {height:"94%"});
	},
	members :
	{
		_menu : null,
		_cuerpo : null,
		_forms : null,
		setMenu : function (json)
		{
			var ban = true
			for (var elemento in json.sections) // Recorrera segun la cantidad de elementos de sections que tenga el json
			{
				if (ban)
				{
					var menuPart = new qx.ui.toolbar.Part; // Menu principal donde se encuentran todas las secciones (Archivo, Edit, About, etc)
					ban = false;
				}
				
				if (! isNaN(parseInt(elemento))) // Parche para IE y Chro*
				{
					elemento = json.sections[elemento]; // variable que contiene cada SECTION que se encuentro dentro del json
									
					if (elemento.items)
					{
						var section = new qx.ui.toolbar.MenuButton(elemento.label, elemento.icon); // Creacion de cada Seccion
					
						var items = new qx.ui.menu.Menu; // Menu secundario donde se apoya cada item de la seccion
						
						for (var item in elemento.items)
						{
							if (! isNaN(parseInt(item))) // Parche para IE y Chro*
							{
								item = elemento.items[item]; //variable que contiene cada item de la seccion
								if (item.separator)
								{
									items.addSeparator();
								}
								else
								{
									var op = new qx.ui.menu.Button(item.label, item.icon);
									if (item.action)
									{
										if (item.context)
											op.addListener("execute", item.action, item.context);
										else
											op.addListener("execute", item.action);
									}
									items.add(op); // Creacion de cada item
								}
							}
						}
						section.setMenu(items); //Ligo los items a la seccion previamente creada
						menuPart.add(section); //Ligo la seccion al Menu principal
					}
					else
					{
//						alert(elemento.op_menu);
						switch (elemento.op_menu)
						{
							case 'spacer':
							{
								this._menu.add(menuPart);//Ligo el Menu principal al toolbar
								ban = true;
								this._menu.addSpacer();
								break;
							}
							case 'label':
							{
								menuPart.addSeparator();
								menuPart.add(new qx.ui.basic.Label(elemento.value).set({rich:true}));
//								this._menu.add(menuPart);//Ligo el Menu principal al toolbar
//								ban = true;
//								this._menu.addSpacer();
								break;
							}
							default :
							{
								var section = new qx.ui.toolbar.Button(elemento.label, elemento.icon);
								if (elemento.action)
								{
									if (elemento.context)
										section.addListener("execute", elemento.action, elemento.context);
									else
										section.addListener("execute", elemento.action);
								}
								menuPart.add(section);
								
								break;
							}
						}
					}
				}
				if (!ban)
					this._menu.add(menuPart);//Ligo el Menu principal al toolbar
					
				
			}
//			menuPart.add(new qx.ui.basic.Label("Probando la mierd@ esta <br /> Funcionara?").set({rich:true}));
			
//			
//			
//		
//			var menuPart = new qx.ui.toolbar.Part();
//			var section = new qx.ui.toolbar.Button("Prueba", "");
//			
//			menuPart.add(section);
//			this._menu.add(menuPart);
		},
		openForm : function (FormTab)
		{
			FormTab.addListener("close", function ()
			{
				//if (confirm("Seguro que desea cerrar el Formulario?"))
				//{
					this.closeForm(FormTab.getId());
				//}
			}, this);
			if (! this.isOpen(FormTab.getId()))
			{
				this._forms[FormTab.getId()] = FormTab;
				this._cuerpo.add(FormTab);
			}
			this.setFocusForm(FormTab.getId());
		},
		closeForm : function (idForm)
		{
//			this._cuerpo.remove(this._forms[idForm]);
			if (this._forms[idForm] != null)
			{
//				this._forms[idForm].destroy();
				this._forms[idForm] = null;
				for (var form in this._forms)
				{
					if (! isNaN(parseInt(form))) // Parche para IE y Chro*
					{
						if (this._forms[form] != null)
						{
							this.setFocusForm(this._forms[form].getId());
							break;
						}
					}
				}
			}
		},
		isOpen : function (idForm)
		{
			if (this._forms[idForm] != null)
			{
				return true
			}
			else
			{
				return false
			}
		},
		isAutorized : function ()
		{
			//retorna true o false
		},
		setFocusForm : function (idForm)
		{
			this._cuerpo.setSelection([this._forms[idForm]]);
		}
	}
});
